﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Common.Model;
using JOthello.Controls;

namespace JOthello.Forms
{
    public partial class SpielForm : Form
    {
        #region getter / setter
        public SpielControl SpielControl { get; set; }
        public Panel PnlFeld
        {
            get
            {
                return pnlFeld;
            }
            set
            {
                pnlFeld = value;
            }
        }
        public Button BtnExport
        {
            get
            {
                return btnExport;
            }
            set
            {
                btnExport = value;
            }
        }
        public Button BtnUndo
        {
            get
            {
                return btnUndo;
            }
            set
            {
                btnUndo = value;
            }
        }
        public Button BtnRedo
        {
            get
            {
                return btnRedo;
            }
            set
            {
                btnRedo = value;
            }
        }
        #region spieler0
        public PictureBox PbxSpieler0
        {
            get
            {
                return pbxSpieler0;
            }
            set
            {
                pbxSpieler0 = value;
            }
        }
        public Label LblSpieler0Name
        {
            get
            {
                return lblSpieler0Name;
            }
            set
            {
                lblSpieler0Name = value;
            }
        }
        public Label LblSpieler0Punkte
        {
            get
            {
                return lblSpieler0Punkte;
            }
            set
            {
                lblSpieler0Punkte = value;
            }
        }
        public Panel PnlSpieler0
        {
            get
            {
                return pnlSpieler0;
            }
            set
            {
                pnlSpieler0 = value;
            }
        }
        public Button BtnSpieler0Next
        {
            get
            {
                return btnSpieler0Next;
            }
            set
            {
                btnSpieler0Next = value;
            }
        }
        public Label LblSpieler0AmZug
        {
            get
            {
                return lblSpieler0AmZug;
            }
            set
            {
                lblSpieler0AmZug = value;
            }
        }
        #endregion
        #region spieler1
        public PictureBox PbxSpieler1
        {
            get
            {
                return pbxSpieler1;
            }
            set
            {
                pbxSpieler1 = value;
            }
        }
        public Label LblSpieler1Name
        {
            get
            {
                return lblSpieler1Name;
            }
            set
            {
                lblSpieler1Name = value;
            }
        }
        public Label LblSpieler1Punkte
        {
            get
            {
                return lblSpieler1Punkte;
            }
            set
            {
                lblSpieler1Punkte = value;
            }
        }
        public Panel PnlSpieler1
        {
            get
            {
                return pnlSpieler1;
            }
            set
            {
                pnlSpieler1 = value;
            }
        }
        public Button BtnSpieler1Next
        {
            get
            {
                return btnSpieler1Next;
            }
            set
            {
                btnSpieler1Next = value;
            }
        }
        public Label LblSpieler1AmZug
        {
            get
            {
                return lblSpieler1AmZug;
            }
            set
            {
                lblSpieler1AmZug = value;
            }
        }
        #endregion
        #endregion
        public SpielForm(List<CSpieler> sps, CSpielfeld.GameMode mode, int size = 8, bool showPossible = true, Action<CPoint> turned = null, CSpieler networkPlayers = null, CSpieler current = null)
        {
            commonConstruct();
            this.SpielControl = new SpielControl(this, sps, mode, size, showPossible, turned, networkPlayers, current);
        }

        public SpielForm(string path)
        {
            commonConstruct();
            this.SpielControl = new SpielControl(this, path);
        }

        private void commonConstruct()
        {
            InitializeComponent();
            this.Icon = Properties.Resources.icon;
            lblSpieler0AmZug.BackColor = lblSpieler1AmZug.BackColor = Color.Transparent;
        }
    }
}
